package com.cskaoyan.javase.basic._3variable._6exercise;

/**
 * @description: 小练习
 * @author: wuguidong@cskaoyan.onaliyun.com
 **/

/**
 * 1. 字面值常量互相做运算结果仍然是常量，它的运算结果是编译器可以确定的，无需程序运行
 * 2. 对于一个普通的整数字面值常量，编译器会默认当作int进行处理，**而编译器是能够认识该整数的大小的**
 *    - **对于处在byte、short、char类型范围内的整数字面值常量，编译器会自动强转为对应类型**
 * 3.对于超过int但是仍在long类型范围内的整数，必须要明确指出它是long类型
 *
 * 4.思考: 编译器能够智能识别整型的范围,那么能不能识别浮点型呢?
 *      不能,因为浮点数的存储比较复杂
 *      所有小数都是默认当做double处理,没有智能当成float的情况
 *
 */
public class Demo {
    public static void main(String[] args) {
        //byte b1 = 1, b2 = 2, b;
        //b = ((byte) (b1 + b2));
        //b = 1 + 2;
        //System.out.println(b);


        byte a = 100;
        short b = 200;
        //a = 200;

        a = -128;

        //对于超过int范围的整数也是不能赋值给int类型的
        //Integer number too large
        //int c = 10000000000;


        System.out.println('a'); //a
        System.out.println('a' + 1); //98
        System.out.println("hello" + 'a' + 1); //helloa1
        System.out.println('a' + 1 + "hello"); //98hello
        System.out.println("5+5=" + (5 + 5)); //5+5=55
        System.out.println(5 + 5 + "=5+5"); //10=5+5
        System.out.println(5 + 5.0); //10.0
        System.out.println(5 + "5" + 5.0); //555.0


    }
}
